1
以資料轉換為核心的程式設計
AI019Lesson 1
00:00

在 Elixir 中,我們摒棄了透過修改狀態來進行指令式編程的模式,轉而採用一種以流程為基礎的方法,讓程式成為一系列獨立的 純粹的轉換。取而代之的是,我們不需告訴電腦 如何 去改變一個值,而是定義一個函數的處理流程,其中 程式設計應聚焦於資料轉換

1. 不可變性原則

在 Elixir 中, 所有值都是不可變的一旦資料建立,便無法被更改。這確保了 不可變資料即是已知資料——資訊永遠不會意外地改變,從而消除大量與狀態相關的錯誤。這種轉換從不修改資料;相反地,每個函數都會產生一個 全新且完整的版本 的資料。

原始資料轉換新狀態|>|>

2. 管道哲學

管道運算子(|>)將資料視為像流體般在工廠生產線上移動。函數式程式語言讓我們能以逐步轉換資料的函數觀點來思考問題。

3. 執行者情境

在 Erlang 虛擬機(BEAM)中,程式碼運行於 極小的並行處理程序,每個都有自己的狀態。 處理程序之間透過訊息溝通。由於通訊是透過訊息傳遞的方式進行,因此在不同機器間交換資料時,虛擬機會自動透明處理。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>